home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / DEF / Access / fit < prev    next >
Text File  |  1998-10-23  |  2KB  |  77 lines

  1. fit time-range length-pattern or length-zone-reference
  2.  
  3. fit enables to scale dynamics to a certain time-range. The calculation is done using a length-pattern, or a reference number to a length zone. fit returns the number of times the length items will fit inside the time-range. When this number is used as a length parameter with many  generators, absolute scaling can be achieved. fit's length-zone- reference adjusts to the length definitions of the current instrument in current section, and can be used to any contexts, like same-as.
  4.  
  5. Here the gen-cresc scales to a range 1/2 in both zones. Number one refers to length pattern (1/16) and number 2 refers to length pattern (1/8). 
  6.  
  7. (def-section sect-a
  8.    default
  9.       zone '(1/1 1/1)
  10.       tonality (activate-tonality (major c 4))
  11.       length '((1/16) (1/8))
  12.       symbol '(-b -c -d)
  13.    synth
  14.       velocity (list (gen-cresc 12 45 (fit 1/2 1))
  15.                      (gen-cresc 12 45 (fit 1/2 2)))
  16.    synth2
  17.       velocity (gen-cresc 12 45 (fit 2/1))
  18. )
  19.  
  20. (midiport :printer)
  21.  
  22. (def-tempo 120)
  23.  
  24. (play-file-p "auto-scale"
  25.    synth '(sect-a)
  26.    synth2 same
  27. )
  28.  
  29. If length list is a non-zone pattern like in the following, then length-zone-reference is omitted.
  30.  
  31. (def-section a
  32.    default
  33.       zone '(1/1 1/1)
  34.       tonality (activate-tonality (major c 4))
  35.       length '(1/16 1/8)
  36.       symbol '(-b -c -d)
  37.    synth
  38.       velocity (gen-cresc 12 45 (fit 2/1))
  39. )
  40.  
  41. (midiport :printer)
  42.  
  43. (def-tempo 120)
  44.  
  45. (play-file-p "auto-scale"
  46.    synth '(a)
  47. )
  48.  
  49. What if you have length zones like '((1/16) (1/8)), which go for zones '(1/1 1/1), and want to make a crescendo which lasts more than one zone. This is done in the same way.
  50.  
  51. (def-section a
  52.    default
  53.       zone '(1/1 1/1)
  54.       tonality (activate-tonality (major c 4))
  55.       length '((1/16) (1/8))
  56.       symbol '(-b -c -d)
  57.    synth
  58.       velocity (gen-cresc 12 45 (fit 2/1))
  59. )
  60.  
  61. (midiport :printer)
  62.  
  63. (def-tempo 120)
  64.  
  65. (play-file-p "auto-scale"
  66.    synth '(a)
  67. )
  68.  
  69. Another way to call fit is to supply it with a length pattern:
  70.  
  71. (gen-cresc 12 45 (fit 1/2 '(1/16 1/8)))
  72.  
  73. If you want to scale to a given zone number, you can do it with the aid of zone-scale function. Note that this requires that symbol class is previously defined.
  74.  
  75. (gen-cresc 12 45 (zone-scale 1)) ; scales to first zone = 1/1
  76.  
  77.